package com.fantasy.dao.impl;

import com.fantasy.dao.AdminDao;
import com.fantasy.dao.BaseDao;
import com.fantasy.entity.Admin;

import java.util.List;

public class AdminDaoImpl extends BaseDao implements AdminDao {
    /**
     * 添加管理员
     * @param admin
     * @return
     */
    @Override
    public int insert(Admin admin) {
        String sql="INSERT INTO `admin` (`id`,`name`,`password`,`email`,`phone`)VALUES(?,?,?,?,?)";
        return super.update(sql,admin.getId(),admin.getName(),admin.getPassword(),admin.getEmail(),admin.getPhone());
    }

    /**
     * 修改管理员
     * @param admin
     * @return
     */
    @Override
    public int update(Admin admin) {
        String sql="UPDATE  `admin` SET `name`=?,`password`=?,`email`=?,`phone`=? where `id`=?";
        return super.update(sql,admin.getName(),admin.getPassword(),admin.getEmail(),admin.getPhone(),admin.getId());
    }

    /**
     * 删除管理员
     * @param id
     * @return
     */
    @Override
    public int delete(int id) {
        String sql="DELETE FROM `admin` WHERE `id`=?";
        return super.update(sql,id);
    }

    /**
     * 通过电话和密码查询
     * @param phone
     * @param password
     * @return
     */
    @Override
    public Admin queryByPhoneAndPassword(String phone, String password) {
        String sql="SELECT * FROM `admin` WHERE `phone`=? AND `password`=?";
        return super.queryForOne(Admin.class,sql,phone,password);
    }

    /**
     * 通过电话查询
     * @param phone
     * @return
     */
    @Override
    public Admin queryByPhone(String phone) {
        String sql="SELECT * FROM `admin` WHERE `phone`=? ";
        return super.queryForOne(Admin.class,sql,phone);
    }
    /**
     * 通过id查找
     * @param id
     * @return
     */
    @Override
    public Admin queryById(int id) {
        String sql="SELECT * FROM `admin` WHERE `id`=? ";
        return super.queryForOne(Admin.class,sql,id);
    }

    /**
     * 查询全部
     * @return
     */
    @Override
    public List<Admin> queryAll() {
        String sql="SELECT * FROM `admin`";
        return super.queryForList(Admin.class,sql);
    }

    /**
     * 查询总记录条数
     */
    @Override
    public Integer queryForPageTotalCount() {
        String sql = "SELECT COUNT(1) FROM `admin`";
        Number count = (Number) super.queryForSingleValue(sql);
        return count.intValue();
    }

    /**
     * 分页查询DAO层方法
     *
     * @param begin    起始记录行数
     * @param pageSize 每页展示数量
     * @return
     */
    @Override
    public List<Admin> queryForPageItems(int begin, int pageSize) {
        String sql = "SELECT * FROM `admin` LIMIT ?, ?";
        return super.queryForList(Admin.class,sql,begin,pageSize);
    }
}
